
package view;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;

import javax.swing.JOptionPane;

import model.core.torneo.Torneo;
import model.core.utente.Commissario;

/**
 * 
 * @author Giuseppe Fusco (fusgius@gmail.com)
 *
 */
public class CaratteristicheTorneo extends javax.swing.JPanel {

    /**
	 * 
	 */
	private static final long serialVersionUID = -2842319447458802754L;
	private Torneo torneo;
	
	public CaratteristicheTorneo(Commissario com) {
        initComponents();
        torneo = com.creaTorneo();
        addListener();
        minPartecipantiTorneo.setText(String.valueOf(torneo.getMinComponenti()));
        maxPartecipantiTorneo.setText(String.valueOf(torneo.getMaxComponenti()));
        numeroEdizioneTorneo.setText(String.valueOf(torneo.getNumero_edizione()));
        annoSvolgimentoTorneo.setText(String.valueOf(torneo.getAnno_svolgimento()));
    }
    
    private void addListener(){
    	
    	fatto.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				String nome = nomeTorneo.getText();
				String tipologia = tipologiaTorneo.getText();
				String anno = annoSvolgimentoTorneo.getText();
				String min = minPartecipantiTorneo.getText();
				String max = maxPartecipantiTorneo.getText();
				String ed = numeroEdizioneTorneo.getText();
				if(nome!=null && tipologia!=null && anno!=null && min!=null && 
						max!=null && ed!=null){
					try{
						int sv = Integer.parseInt(anno);
						int minp = Integer.parseInt(min);
						int maxp = Integer.parseInt(max);
						int numed = Integer.parseInt(ed);
						torneo.setAnno_svolgimento(sv);
						torneo.setMaxComponenti(maxp);
						torneo.setMinComponenti(minp);
						torneo.setNome(nome);
						torneo.setNumero_edizione(numed);
						torneo.setSingolo(tipoGiocatoriTorneo.getSelectedIndex()==0?true:false);
						torneo.setTipologia(tipologia);
						String opt = "E' stato creato un torneo con le seguenti caratteristiche:\n" +
								"Nome: "+torneo.getNome()+"\n" +
										"Tipologia: "+torneo.getTipologia()+"\n" +
												"A squadre: "+!torneo.isSingolo()+"\n" +
														"Nro minimo partecipanti: "+torneo.getMinComponenti()+"\n" +
																"Nro massimo partecipanti: "+torneo.getMaxComponenti()+"\n" +
																		"Nro edizione: "+torneo.getNumero_edizione()+"\n" +
																				"Anno svolgimento: "+torneo.getAnno_svolgimento()+"\n" +
																						"Confermi di voler continuare la procedura?";
						if(JOptionPane.showConfirmDialog(getParent(), opt)==0){
							System.out.println(opt);
						}
					}catch(NumberFormatException e){
						JOptionPane.showMessageDialog(getParent(), "Valori numerici sbagliati.");
					}
				}else
					JOptionPane.showMessageDialog(getParent(), "Inserisci correttamente i dati.");
			}
		});
    	
    	addAnno.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				torneo.setAnno_svolgimento(torneo.getAnno_svolgimento()+1);
				annoSvolgimentoTorneo.setText(String.valueOf(torneo.getAnno_svolgimento()));
			}
		});

		remAnno.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				torneo.setAnno_svolgimento(torneo.getAnno_svolgimento()-1);
				annoSvolgimentoTorneo.setText(String.valueOf(torneo.getAnno_svolgimento()));
			}
		});

		addMaxPartecipanti.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				torneo.setMaxComponenti(torneo.getMaxComponenti()+1);
				maxPartecipantiTorneo.setText(String.valueOf(torneo.getMaxComponenti()));
			}
		});

		remMaxPartecipanti.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				torneo.setMaxComponenti(torneo.getMaxComponenti()-1);
				maxPartecipantiTorneo.setText(String.valueOf(torneo.getMaxComponenti()));
			}
		});

		addMinPartecipanti.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				torneo.setMinComponenti(torneo.getMinComponenti()+1);
				minPartecipantiTorneo.setText(String.valueOf(torneo.getMinComponenti()));
			}
		});

		remMinPartecipanti.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				torneo.setMinComponenti(torneo.getMinComponenti()-1);
				minPartecipantiTorneo.setText(String.valueOf(torneo.getMinComponenti()));
			}
		});

		addNumeroEdizione.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				torneo.setNumero_edizione(torneo.getNumero_edizione()+1);
				numeroEdizioneTorneo.setText(String.valueOf(torneo.getNumero_edizione()));
			}
		});

		remNumeroEdizione.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent arg0) {
				// TODO Auto-generated method stub
				torneo.setNumero_edizione(torneo.getNumero_edizione()-1);
				numeroEdizioneTorneo.setText(String.valueOf(torneo.getNumero_edizione()));
			}
		});

    }

    private void initComponents() {

        javax.swing.JLabel jLabel7 = new javax.swing.JLabel();
        javax.swing.JLabel jLabel6 = new javax.swing.JLabel();
        javax.swing.JLabel jLabel5 = new javax.swing.JLabel();
        javax.swing.JLabel jLabel4 = new javax.swing.JLabel();
        javax.swing.JLabel jLabel3 = new javax.swing.JLabel();
        javax.swing.JLabel jLabel2 = new javax.swing.JLabel();
        javax.swing.JLabel jLabel1 = new javax.swing.JLabel();
        tipoGiocatoriTorneo = new javax.swing.JComboBox();
        minPartecipantiTorneo = new javax.swing.JTextField();
        maxPartecipantiTorneo = new javax.swing.JTextField();
        annoSvolgimentoTorneo = new javax.swing.JTextField();
        numeroEdizioneTorneo = new javax.swing.JTextField();
        tipologiaTorneo = new javax.swing.JTextField();
        nomeTorneo = new javax.swing.JTextField();
        addMinPartecipanti = new javax.swing.JButton();
        remMinPartecipanti = new javax.swing.JButton();
        addMaxPartecipanti = new javax.swing.JButton();
        remMaxPartecipanti = new javax.swing.JButton();
        addAnno = new javax.swing.JButton();
        remAnno = new javax.swing.JButton();
        addNumeroEdizione = new javax.swing.JButton();
        remNumeroEdizione = new javax.swing.JButton();
        annulla = new javax.swing.JButton();
        fatto = new javax.swing.JButton();

        jLabel7.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        jLabel7.setText("Tipo giocatori");

        jLabel6.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        jLabel6.setText("Min partecipanti");

        jLabel5.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        jLabel5.setText("Max partecipanti");

        jLabel4.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        jLabel4.setText("Anno");

        jLabel3.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        jLabel3.setText("Numero edizione");

        jLabel2.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        jLabel2.setText("Tipologia");

        jLabel1.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        jLabel1.setText("Nome torneo");

        tipoGiocatoriTorneo.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        tipoGiocatoriTorneo.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Giocatori", "Squadre" }));

        minPartecipantiTorneo.setColumns(4);
        minPartecipantiTorneo.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N

        maxPartecipantiTorneo.setColumns(4);
        maxPartecipantiTorneo.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N

        annoSvolgimentoTorneo.setColumns(4);
        annoSvolgimentoTorneo.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N

        numeroEdizioneTorneo.setColumns(4);
        numeroEdizioneTorneo.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N

        tipologiaTorneo.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N

        nomeTorneo.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N

        addMinPartecipanti.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        addMinPartecipanti.setText("+");

        remMinPartecipanti.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        remMinPartecipanti.setText("-");

        addMaxPartecipanti.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        addMaxPartecipanti.setText("+");

        remMaxPartecipanti.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        remMaxPartecipanti.setText("-");

        addAnno.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        addAnno.setText("+");

        remAnno.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        remAnno.setText("-");

        addNumeroEdizione.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        addNumeroEdizione.setText("+");

        remNumeroEdizione.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        remNumeroEdizione.setText("-");

        annulla.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        annulla.setText("Annulla");

        fatto.setFont(new java.awt.Font("Trebuchet MS", 1, 12)); // NOI18N
        fatto.setText("Fatto");

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
        this.setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(layout.createSequentialGroup()
                        .addGap(0, 0, Short.MAX_VALUE)
                        .addComponent(annulla)
                        .addGap(0, 0, 0)
                        .addComponent(fatto))
                    .addGroup(layout.createSequentialGroup()
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                            .addComponent(jLabel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel5, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel3, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel4, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel6, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel2, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jLabel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(layout.createSequentialGroup()
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addComponent(numeroEdizioneTorneo, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(minPartecipantiTorneo, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(maxPartecipantiTorneo, javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(annoSvolgimentoTorneo, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(addMinPartecipanti)
                                        .addGap(0, 0, 0)
                                        .addComponent(remMinPartecipanti))
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(addMaxPartecipanti)
                                        .addGap(0, 0, 0)
                                        .addComponent(remMaxPartecipanti))
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(addAnno)
                                        .addGap(0, 0, 0)
                                        .addComponent(remAnno))
                                    .addGroup(layout.createSequentialGroup()
                                        .addComponent(addNumeroEdizione)
                                        .addGap(0, 0, 0)
                                        .addComponent(remNumeroEdizione))))
                            .addComponent(tipologiaTorneo)
                            .addComponent(nomeTorneo, javax.swing.GroupLayout.PREFERRED_SIZE, 128, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(tipoGiocatoriTorneo, javax.swing.GroupLayout.PREFERRED_SIZE, 113, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap())
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel1)
                    .addComponent(nomeTorneo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel2)
                    .addComponent(tipologiaTorneo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel3)
                    .addComponent(numeroEdizioneTorneo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(addNumeroEdizione)
                    .addComponent(remNumeroEdizione))
                .addGap(0, 0, 0)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel4)
                    .addComponent(annoSvolgimentoTorneo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(addAnno)
                    .addComponent(remAnno))
                .addGap(0, 0, 0)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel5)
                    .addComponent(maxPartecipantiTorneo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(addMaxPartecipanti)
                    .addComponent(remMaxPartecipanti))
                .addGap(0, 0, 0)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel6)
                    .addComponent(minPartecipantiTorneo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(addMinPartecipanti)
                    .addComponent(remMinPartecipanti))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel7)
                    .addComponent(tipoGiocatoriTorneo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addGap(32, 32, 32)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(annulla)
                    .addComponent(fatto))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
    }
    
    private javax.swing.JButton addAnno;
    private javax.swing.JButton addMaxPartecipanti;
    private javax.swing.JButton addMinPartecipanti;
    private javax.swing.JButton addNumeroEdizione;
    private javax.swing.JTextField annoSvolgimentoTorneo;
    private javax.swing.JButton annulla;
    private javax.swing.JButton fatto;
    private javax.swing.JTextField maxPartecipantiTorneo;
    private javax.swing.JTextField minPartecipantiTorneo;
    private javax.swing.JTextField nomeTorneo;
    private javax.swing.JTextField numeroEdizioneTorneo;
    private javax.swing.JButton remAnno;
    private javax.swing.JButton remMaxPartecipanti;
    private javax.swing.JButton remMinPartecipanti;
    private javax.swing.JButton remNumeroEdizione;
    private javax.swing.JComboBox tipoGiocatoriTorneo;
    private javax.swing.JTextField tipologiaTorneo;
}
